//介绍generator给大家认识

function * helloWorldGenerator(){
    yield 'hello';
    yield 'world';
    return 'ending';
}
var gen = helloWorldGenerator();

//就像端点调试，函数内部会被暂停在某个yield 或者return
console.log(gen.next()); //hello
console.log(gen.next());//world
console.log(gen.next()); //ending
console.log(gen.next()); //null

//可以带参数，参数就是上一个yield的返回值

//函数等待另一个函数
function * a1(){
    yield 'a';
    yield 'b';
}

function * b1(){
    yield 'x';
    yield * a1();
    yield 'y';
}
//可以看出b1是多返回值的 ， 事实上b1会把所以的yield的状态作为一个数组返回。
for(let v of b1()){
    console.log(v);
}
